From ab0a8fc17f91a18ecca64c50f41bed7e1a8ce4fb Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Wed, 24 Nov 2010 21:09:23 -0500 Subject: [PATCH] Improve the migration guide Add some hints about dealing with colors. --- .../gtk/migrating-GtkStyleContext.xml | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/docs/reference/gtk/migrating-GtkStyleContext.xml b/docs/reference/gtk/migrating-GtkStyleContext.xml index b366e65e91..775fee0545 100644 --- a/docs/reference/gtk/migrating-GtkStyleContext.xml +++ b/docs/reference/gtk/migrating-GtkStyleContext.xml @@ -140,6 +140,7 @@ although custom widgets may define their own, which themes may attempt to handle. + @@ -357,6 +358,37 @@ independently. + + Access to colors has also changed a bit. With #GtkStyle, the common + way to access colors is: + + GdkColor *color1; + GdkColor color2; + + color1 = &style->bg[GTK_STATE_PRELIGHT]; + gtk_style_lookup_color (style, "focus_color", &color2); + + With #GtkStyleContext, you generally use #GdkRGBA instead of #GdkColor + and the code looks like this: + + GdkRGBA *color1; + GdkRGBA color2; + + gtk_style_context_get (context, GTK_STATE_FLAG_PRELIGHT, + "background-color", &color1, + NULL); + gtk_style_context_lookup_color (context, "focus_color", &color2); + + ... + + gdk_rgba_free (color1); + + Note that the memory handling here is different: gtk_style_context_get() + expects the address of a GdkRGBA* and returns a newly allocated struct, + gtk_style_context_lookup_color() expects the address of an existing + struct, and fills it. + + It is worth mentioning that the new file format does not support custom keybindings nor stock icon mappings as the RC format did. -- 2.30.2